package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.ManageTxn;

import java.util.List;

/**
 * 管理类交易流水表操作接口类
 * Created by 王成 on 2018/4/18.
 */
public interface ManageTxnMapper {
    /**
     * 登记管理类交易流水表
     *
     * @param manageTxn 管理类交易流水实体类
     * @return 0-成功，其它-失败
     */
    int insertManageTxn(ManageTxn manageTxn) throws Exception;

    /**
     * 基于主键更新管理类交易流水状态
     *
     * @param manageTxn 管理类交易流水实体类
     * @return 0-成功，其它-失败
     */
    int updateManageTxnByPrimaryKey(ManageTxn manageTxn) throws Exception;

    /**
     * 基于前端流水号查询管理类交易流水
     *
     * @param instId         多法人标识
     * @param transDateTime  交易传输时间
     * @param frontSeqNum    前端流水号
     * @param msgSrcId       渠道系统标识
     * @param transChannelId 渠道编号
     * @return 管理类交易流水
     */
    ManageTxn selectManageTxnByFrontSeqNum(String instId, String transDateTime, String frontSeqNum, String msgSrcId, String transChannelId) throws Exception;

    /**
     * 基于系统流水号查询管理类交易流水
     *
     * @param instId    多法人标识
     * @param sysSeqNum 系统流水号
     * @return 管理类交易流水
     * @throws Exception 异常
     */
    ManageTxn selectManageTxnByPrimaryKey(String instId, String sysSeqNum) throws Exception;

    /**
     * 基于商户号查询管理类交易流水
     *
     * @param instId    多法人标识
     * @param mchntNo   商户号
     * @param beginDate 开始日期
     * @param endDate   截止日期
     * @return 管理类交易流水
     * @throws Exception 异常
     */
    List<ManageTxn> selectManageTxnByMchntNo(String instId, String mchntNo, String beginDate, String endDate) throws Exception;

    /**
     * 基于用户标识查询管理类交易流水
     *
     * @param instId    多法人标识
     * @param userId    用户标识
     * @param beginDate 开始日期
     * @param endDate   截止日期
     * @return 管理类交易流水
     * @throws Exception 异常
     */
    List<ManageTxn> selectManageTxnByUserId(String instId, String userId, String beginDate, String endDate) throws Exception;
}
